{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#coding:utf-8\n",
    "%reload_ext autoreload \n",
    "%autoreload 2\n",
    "import os\n",
    "import sys\n",
    "project_basedir = '..'\n",
    "sys.path.append(project_basedir)\n",
    "from config import conf\n",
    "import json\n",
    "from matplotlib import pyplot as plt\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "plt.style.use('ggplot')\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "validate_dirs = os.listdir(conf.validate_dir)\n",
    "validate_dirs = [i for i in validate_dirs if i != '_blank']\n",
    "validate_dirs = sorted(validate_dirs)\n",
    "validate_dirs = [os.path.join(conf.validate_dir,i) for i in validate_dirs]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def add_score(onedic,key,point):\n",
    "    onedic.setdefault(key,0)\n",
    "    onedic[key] += point\n",
    "def cal_points(gameplays):\n",
    "    point_dic = {}\n",
    "    for onegame in gameplays:\n",
    "        if onegame[-3:] != 'cbf':\n",
    "            continue\n",
    "        winner = onegame.split('_')[-1].split('.')[0]\n",
    "        player1 = onegame.split('_')[-2].split('-')[0]\n",
    "        player2 = onegame.split('_')[-2].split('-')[1]\n",
    "        assert(winner in ['w','b','peace'])\n",
    "        if winner == 'w':\n",
    "            add_score(point_dic,player1,1)\n",
    "            add_score(point_dic,player2,0)\n",
    "        elif winner == 'b':\n",
    "            add_score(point_dic,player1,0)\n",
    "            add_score(point_dic,player2,1)\n",
    "        elif winner == 'peace':\n",
    "            add_score(point_dic,player1,0.5)\n",
    "            add_score(point_dic,player2,0.5)\n",
    "            add_score(point_dic,'peace',1)\n",
    "        else:\n",
    "            raise\n",
    "    return point_dic"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "game_numbers = [0]\n",
    "game_numbers_identity = [0]\n",
    "elu_points = [0]\n",
    "validate_games = [0]\n",
    "win_rate = [0]\n",
    "dates = ['start']\n",
    "peace_rates = [0]\n",
    "delta_elo = [0]\n",
    "for one_dir in validate_dirs:\n",
    "    one_date = one_dir.split('/')[-1]\n",
    "    gameplays = os.listdir(one_dir)\n",
    "    pointcdic = cal_points(gameplays)\n",
    "    game_num = len(gameplays)\n",
    "    \n",
    "    try:\n",
    "        gn = len(os.listdir(os.path.join(conf.history_selfplay_dir,one_date.replace('_noup',''))))\n",
    "    except:\n",
    "        gn = 0\n",
    "    if game_num == 0:\n",
    "        continue\n",
    "        \n",
    "    old_score = pointcdic.get('oldnet',0) / game_num\n",
    "    peace_rate = pointcdic.get('peace',0) / game_num\n",
    "    \n",
    "    if old_score == 0:\n",
    "        continue\n",
    "        \n",
    "    game_numbers.append(game_numbers[-1] + gn)\n",
    "    game_numbers_identity.append(gn)\n",
    "    \n",
    "    \n",
    "    elo = np.log10(1 / old_score - 1) * 400\n",
    "    if one_date >= '2018-08-27_22-13-25' and one_date < '2018-09-16_17-00-24' and elo < 0:\n",
    "        elo = 0\n",
    "    #elif one_date >= '2018-09-16_17-00-24' and elo < -100:\n",
    "    #    elo = 0\n",
    "    elu_points.append(elu_points[-1] + elo)\n",
    "    validate_games.append(len(gameplays))\n",
    "    win_rate.append(1 - old_score)\n",
    "    dates.append(one_date)\n",
    "    peace_rates.append(peace_rate)\n",
    "    delta_elo.append(elo)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.text.Text at 0x7efff48827f0>"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f0071c2feb8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(10,10))\n",
    "plt.plot(game_numbers,elu_points,marker='o',mec='r',mfc='w',label='elo')\n",
    "plt.plot(game_numbers,delta_elo,marker='*',ms=10,label='delta elo')\n",
    "plt.legend()\n",
    "plt.xlabel(\"Game played\")\n",
    "plt.ylabel(\"Elo\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>dates</th>\n",
       "      <th>delta_elo</th>\n",
       "      <th>elu_points</th>\n",
       "      <th>game_numbers</th>\n",
       "      <th>game_numbers_identity</th>\n",
       "      <th>peace_rates</th>\n",
       "      <th>validate_games</th>\n",
       "      <th>win_rate</th>\n",
       "      <th>上位情况</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>340</th>\n",
       "      <td>2018-11-08_10-10-19_noup</td>\n",
       "      <td>-12.755658</td>\n",
       "      <td>4568.115622</td>\n",
       "      <td>3490578</td>\n",
       "      <td>10019</td>\n",
       "      <td>0.155963</td>\n",
       "      <td>218</td>\n",
       "      <td>0.481651</td>\n",
       "      <td>上位</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>341</th>\n",
       "      <td>2018-11-08_16-20-17_noup</td>\n",
       "      <td>-150.619466</td>\n",
       "      <td>4417.496155</td>\n",
       "      <td>3500757</td>\n",
       "      <td>10179</td>\n",
       "      <td>0.233945</td>\n",
       "      <td>218</td>\n",
       "      <td>0.295872</td>\n",
       "      <td>上位</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>342</th>\n",
       "      <td>2018-11-08_22-10-13_noup</td>\n",
       "      <td>-201.641898</td>\n",
       "      <td>4215.854258</td>\n",
       "      <td>3510772</td>\n",
       "      <td>10015</td>\n",
       "      <td>0.064220</td>\n",
       "      <td>218</td>\n",
       "      <td>0.238532</td>\n",
       "      <td>上位</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>343</th>\n",
       "      <td>2018-11-09_02-30-13_noup</td>\n",
       "      <td>218.658187</td>\n",
       "      <td>4434.512445</td>\n",
       "      <td>3520962</td>\n",
       "      <td>10190</td>\n",
       "      <td>0.156682</td>\n",
       "      <td>217</td>\n",
       "      <td>0.778802</td>\n",
       "      <td>上位</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>344</th>\n",
       "      <td>2018-11-09_07-10-18_noup</td>\n",
       "      <td>27.529118</td>\n",
       "      <td>4462.041562</td>\n",
       "      <td>3531290</td>\n",
       "      <td>10328</td>\n",
       "      <td>0.186047</td>\n",
       "      <td>215</td>\n",
       "      <td>0.539535</td>\n",
       "      <td>上位</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>345</th>\n",
       "      <td>2018-11-09_11-10-14_noup</td>\n",
       "      <td>56.267773</td>\n",
       "      <td>4518.309335</td>\n",
       "      <td>3541677</td>\n",
       "      <td>10387</td>\n",
       "      <td>0.151376</td>\n",
       "      <td>218</td>\n",
       "      <td>0.580275</td>\n",
       "      <td>上位</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>346</th>\n",
       "      <td>2018-11-09_14-40-15_noup</td>\n",
       "      <td>132.565050</td>\n",
       "      <td>4650.874385</td>\n",
       "      <td>3551912</td>\n",
       "      <td>10235</td>\n",
       "      <td>0.138249</td>\n",
       "      <td>217</td>\n",
       "      <td>0.682028</td>\n",
       "      <td>上位</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>347</th>\n",
       "      <td>2018-11-09_18-00-13_noup</td>\n",
       "      <td>-59.824485</td>\n",
       "      <td>4591.049900</td>\n",
       "      <td>3561931</td>\n",
       "      <td>10019</td>\n",
       "      <td>0.175115</td>\n",
       "      <td>217</td>\n",
       "      <td>0.414747</td>\n",
       "      <td>上位</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>348</th>\n",
       "      <td>2018-11-09_21-30-16_noup</td>\n",
       "      <td>15.948605</td>\n",
       "      <td>4606.998505</td>\n",
       "      <td>3572316</td>\n",
       "      <td>10385</td>\n",
       "      <td>0.174312</td>\n",
       "      <td>218</td>\n",
       "      <td>0.522936</td>\n",
       "      <td>上位</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>349</th>\n",
       "      <td>2018-11-10_01-20-15_noup</td>\n",
       "      <td>48.117533</td>\n",
       "      <td>4655.116038</td>\n",
       "      <td>3582359</td>\n",
       "      <td>10043</td>\n",
       "      <td>0.183486</td>\n",
       "      <td>218</td>\n",
       "      <td>0.568807</td>\n",
       "      <td>上位</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                        dates   delta_elo   elu_points  game_numbers  \\\n",
       "340  2018-11-08_10-10-19_noup  -12.755658  4568.115622       3490578   \n",
       "341  2018-11-08_16-20-17_noup -150.619466  4417.496155       3500757   \n",
       "342  2018-11-08_22-10-13_noup -201.641898  4215.854258       3510772   \n",
       "343  2018-11-09_02-30-13_noup  218.658187  4434.512445       3520962   \n",
       "344  2018-11-09_07-10-18_noup   27.529118  4462.041562       3531290   \n",
       "345  2018-11-09_11-10-14_noup   56.267773  4518.309335       3541677   \n",
       "346  2018-11-09_14-40-15_noup  132.565050  4650.874385       3551912   \n",
       "347  2018-11-09_18-00-13_noup  -59.824485  4591.049900       3561931   \n",
       "348  2018-11-09_21-30-16_noup   15.948605  4606.998505       3572316   \n",
       "349  2018-11-10_01-20-15_noup   48.117533  4655.116038       3582359   \n",
       "\n",
       "     game_numbers_identity  peace_rates  validate_games  win_rate 上位情况  \n",
       "340                  10019     0.155963             218  0.481651   上位  \n",
       "341                  10179     0.233945             218  0.295872   上位  \n",
       "342                  10015     0.064220             218  0.238532   上位  \n",
       "343                  10190     0.156682             217  0.778802   上位  \n",
       "344                  10328     0.186047             215  0.539535   上位  \n",
       "345                  10387     0.151376             218  0.580275   上位  \n",
       "346                  10235     0.138249             217  0.682028   上位  \n",
       "347                  10019     0.175115             217  0.414747   上位  \n",
       "348                  10385     0.174312             218  0.522936   上位  \n",
       "349                  10043     0.183486             218  0.568807   上位  "
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd.DataFrame({\n",
    "    'dates':dates,\n",
    "    'game_numbers':game_numbers,\n",
    "    'game_numbers_identity':game_numbers_identity,\n",
    "    'elu_points':elu_points,\n",
    "    'validate_games':validate_games,\n",
    "    'win_rate':win_rate,\n",
    "    'peace_rates':peace_rates,\n",
    "    'delta_elo':delta_elo,\n",
    "    '上位情况':[('pending' if i is None else \"上位\") for i in delta_elo]\n",
    "})[-10:]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "4036\r\n"
     ]
    }
   ],
   "source": [
    "!ls -l ../data/distributed/ | wc -l "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "290\r\n"
     ]
    }
   ],
   "source": [
    "!ls -l ../data/distributed/ | grep peace | wc -l"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1960\r\n"
     ]
    }
   ],
   "source": [
    "!ls -l ../data/distributed/ | grep '_w'| wc -l "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1785\r\n"
     ]
    }
   ],
   "source": [
    "!ls -l ../data/distributed/ | grep '_b'| wc -l "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2018年 11月 12日 星期一 22:03:36 CST\r\n"
     ]
    }
   ],
   "source": [
    "! date"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Mon Nov 12 22:03:37 2018       \r\n",
      "+-----------------------------------------------------------------------------+\r\n",
      "| NVIDIA-SMI 384.111                Driver Version: 384.111                   |\r\n",
      "|-------------------------------+----------------------+----------------------+\r\n",
      "| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |\r\n",
      "| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |\r\n",
      "|===============================+======================+======================|\r\n",
      "|   0  GeForce GTX 108...  Off  | 00000000:05:00.0 Off |                  N/A |\r\n",
      "| 38%   65C    P2    75W / 250W |   4421MiB / 11172MiB |     35%      Default |\r\n",
      "+-------------------------------+----------------------+----------------------+\r\n",
      "|   1  GeForce GTX 108...  Off  | 00000000:42:00.0 Off |                  N/A |\r\n",
      "| 28%   49C    P8    17W / 250W |  11163MiB / 11172MiB |      0%      Default |\r\n",
      "+-------------------------------+----------------------+----------------------+\r\n",
      "                                                                               \r\n",
      "+-----------------------------------------------------------------------------+\r\n",
      "| Processes:                                                       GPU Memory |\r\n",
      "|  GPU       PID   Type   Process name                             Usage      |\r\n",
      "|=============================================================================|\r\n",
      "|    0      6471      C   /usr/local/bin/python3                       451MiB |\r\n",
      "|    0      6472      C   /usr/local/bin/python3                       451MiB |\r\n",
      "|    0      6473      C   /usr/local/bin/python3                       451MiB |\r\n",
      "|    0      6474      C   /usr/local/bin/python3                       451MiB |\r\n",
      "|    0      6475      C   /usr/local/bin/python3                       451MiB |\r\n",
      "|    0     20043      C   python                                      1951MiB |\r\n",
      "|    0     27474      C   /usr/local/bin/python3                       201MiB |\r\n",
      "|    1     26356      C   /mount/anaconda3/bin/python                10549MiB |\r\n",
      "|    1     27474      C   /usr/local/bin/python3                       153MiB |\r\n",
      "|    1     48510      C   /usr/local/bin/python3                       451MiB |\r\n",
      "+-----------------------------------------------------------------------------+\r\n"
     ]
    }
   ],
   "source": [
    "!nvidia-smi"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "tf1.3_python",
   "language": "python",
   "name": "tf1.3_kernel"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
